//封装接口请求类
import {config} from '../config.js'
const tips = {
      1: "抱歉！出错啦！",
   1005: "抱歉，开发者的appkey错误！",
   1006: "抱歉，服务器内部错误！",
   1002: "抱歉，找不到对应资源！",
   3000: "抱歉，该期内容不存在!"
}

class Http{
  request(param){
    wx.request({
         url: `${config.api_base_url}${param.url}`,
      method:  param.method || "GET",
        data:  param.data || null,
      header: {
        'content-type': 'application/json',
        'appkey':config.appkey
      },
      success:(res)=>{
        let code = res.statusCode.toString()
 
        //判断状态码以2开头才表示请求成功
        if (code.startsWith('2')){
          //如果调用方没有传递回到函数就不返回内容
            param.success && param.success(res.data)
        }else{
          const errorcode = res.data.error_code
          this._showError(errorcode)
        }

      },
      fail: (error)=>{
        this._showError(1)
      }

    })
  }
  //错误处理
  _showError(errcode) {
    //没传入错误状态码就设置默认值
    if (!errcode) {
      errcode = 1
    }
    //判断errcode在tips中定义没
    const tip = tips[errcode]
    wx.showToast({
      title: tip ? tips[errcode] : tips[1],
      icon: 'none',
      duration: 2000
    })
  }
}
export {Http}